Computer-implemented system and method for grafting cluster spines

ABSTRACT

A computer-implemented system and method for grafting cluster spines is provided. Cluster spines, each having two or more clusters of documents, are obtained. A score vector is generated for each of the cluster spines based on the documents within the clusters for that spine. The score vectors of the cluster spines are compared. Those cluster spines that are sufficiently dissimilar from the other cluster spines based on the comparison are placed into a display. At least one remaining cluster spine is grafted onto one of the displayed spines such that no overlap of the placed spine and the remaining spine occurs.

CROSS-REFERENCE TO RELATED APPLICATIONS

This patent application is a continuation of U.S. patent applicationSer. No. 13/673,936, filed Nov. 9, 2012, pending, which is acontinuation of U.S. Pat. No. 8,312,019, issued May 26, 2011, which is acontinuation of U.S. Pat. No. 7,885,957, issued Feb. 8, 2011, which is acontinuation of U.S. Pat. No. 7,319,999, issued Jan. 15, 2008, which isa continuation of U.S. Pat. No. 7,191,175, issued Mar. 13, 2007, thepriority filing dates of which are claimed and the disclosures of whichare incorporated by reference.

FIELD

The present invention relates in general to data visualization and, inparticular, to a computer-implemented system and method for graftingcluster spines.

BACKGROUND

In general, data visualization transforms numeric or textual informationinto a graphical display format to assist users in understandingunderlying trends and principles in the data. Effective datavisualization complements and, in some instances, supplants numbers andtext as a more intuitive visual presentation format than raw numbers ortext alone. However, graphical data visualization is constrained by thephysical limits of computer display systems. Two-dimensional andthree-dimensional visualized information can be readily displayed.However, visualized information in excess of three dimensions must beartificially compressed if displayed on conventional display devices.Careful use of color, shape and temporal attributes can simulatemultiple dimensions, but comprehension and usability become difficult asadditional layers of modeling are artificially grafted into a two- orthree-dimensional display space.

Mapping multi-dimensional information into a two- or three-dimensionaldisplay space potentially presents several problems. For instance, aviewer could misinterpret dependent relationships between discreteobjects displayed adjacently in a two or three dimensional display.Similarly, a viewer could erroneously interpret dependent variables asindependent and independent variables as dependent. This type of problemoccurs, for example, when visualizing clustered data, which presentsdiscrete groupings of related data. Other factors further complicate theinterpretation and perception of visualized data, based on the Gestaltprinciples of proximity, similarity, closed region, connectedness, goodcontinuation, and closure, such as described in R. E. Horn, “VisualLanguage: Global Communication for the 21′ Century,” Ch. 3, MacroVUPress (1998), the disclosure of which is incorporated by reference.

Conventionally, objects, such as clusters, modeled in multi-dimensionalconcept space are generally displayed in two- or three-dimensionaldisplay space as geometric objects. Independent variables are modeledthrough object attributes, such as radius, volume, angle, distance andso forth. Dependent variables are modeled within the two or threedimensions. However, poor cluster placement within the two or threedimensions can mislead a viewer into misinterpreting dependentrelationships between discrete objects.

Consider, for example, a group of clusters, which each contain a groupof points corresponding to objects sharing a common set of traits. Eachcluster is located at some distance from a common origin along a vectormeasured at a fixed angle from a common axis. The radius of each clusterreflects the number of objects contained. Clusters located along thesame vector are similar in traits to those clusters located on vectorsseparated by a small cosine rotation. However, the radius and distanceof each cluster from the common origin are independent variablesrelative to other clusters. When displayed in two dimensions, theoverlaying or overlapping of clusters could mislead the viewer intoperceiving data dependencies between the clusters where no such datadependencies exist.

Conversely, multi-dimensional information can be advantageously mappedinto a two- or three-dimensional display space to assist withcomprehension based on spatial appearances. Consider, as a furtherexample, a group of clusters, which again each contain a group of pointscorresponding to objects sharing a common set of traits and in which oneor more “popular” concepts or traits frequently appear in some of theclusters. Since the distance of each cluster from the common origin isan independent variable relative to other clusters, those clusters thatcontain popular concepts or traits may be placed in widely separatedregions of the display space and could similarly mislead the viewer intoperceiving no data dependencies between the clusters where such datadependencies exist.

One approach to depicting thematic relationships between individualclusters applies a force-directed or “spring” algorithm. Clusters aretreated as bodies in a virtual physical system. Each body hasphysics-based forces acting on or between them, such as magneticrepulsion or gravitational attraction. The forces on each body arecomputed in discrete time steps and the positions of the bodies areupdated. However, the methodology exhibits a computational complexity oforder O(n²) per discrete time step and scales poorly to clusterformations having a few hundred nodes. Moreover, large groupings ofclusters tend to pack densely within the display space, thereby losingany meaning assigned to the proximity of related clusters.

Therefore, there is a need for an approach to efficiently placingclusters based on popular concepts or traits into thematic neighborhoodsthat map multiple cluster relationships in a visual display space.

There is a further need for an approach to orienting data clusters toproperly visualize independent and dependent variables while compressingthematic relationships to emphasize thematically stronger relationships.

SUMMARY

Relationships between concept clusters are shown in a two-dimensionaldisplay space by combining connectedness and proximity. Clusters sharing“popular” concepts are identified by evaluating thematically-closestneighboring clusters, which are assigned into linear cluster spinesarranged to avoid object overlap. The cluster arrangement methodologyexhibits a highly-scalable computational complexity of order O(n).

An embodiment provides a system and method for displaying clusters. Aplurality of clusters are generated. Each cluster includes one or moredocuments. A cluster concept selected from the documents is identified.The cluster concepts that satisfy an acceptance criteria are selected.Spines are formed from the clusters associated therewith. The clustersincluding the cluster concepts not selected are assigned to one of thespines, which provides a best fit with the cluster concept. The spinesare placed into a display, wherein each placed spine is unique. Ananchor cluster with an open edge on the placed spines is identified. Oneor more of the spines not already in the display are placed. Similaritybetween the non-placed spine and each anchor cluster is determined. Theanchor cluster most similar is selected. The non-placed spine is set onthe open edge of the anchor cluster.

A further embodiment provides a computer-implemented system and methodfor grafting cluster spines. Cluster spines, each having two or moreclusters of documents, are obtained. A score vector is generated foreach of the cluster spines based on the documents within the clustersfor that spine. The score vectors of the cluster spines are compared.Those cluster spines that are sufficiently dissimilar from the othercluster spines based on the comparison are placed into a display. Atleast one remaining cluster spine is grafted onto one of the displayedspines such that no overlap of the placed spine and the remaining spineoccurs.

Still other embodiments of the present invention will become readilyapparent to those skilled in the art from the following detaileddescription, wherein are one embodiments of the invention by way ofillustrating the best mode contemplated for carrying out the invention.As will be realized, the invention is capable of other and differentembodiments and its several details are capable of modifications invarious obvious respects, all without departing from the spirit and thescope of the present invention. Accordingly, the drawings and detaileddescription are to be regarded as illustrative in nature and not asrestrictive.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram showing a system for arranging conceptclusters in thematic neighborhood relationships in a two-dimensionalvisual display space, in accordance with the present invention.

FIG. 2 is a block diagram showing the system modules implementing thedisplay generator of FIG. 1.

FIG. 3 is a flow diagram showing a method for arranging concept clustersin thematic neighborhood relationships in a two-dimensional visualdisplay space, in accordance with the present invention.

FIG. 4 is a flow diagram showing the routine for generating clusterconcepts for use in the method of FIG. 3.

FIG. 5 is a flow diagram showing the routine for selecting candidatespines for use in the method of FIG. 3.

FIG. 6 is a flow diagram showing the routine for assigning clusters tocandidate spines for use in the method of FIG. 3.

FIG. 7 is a flow diagram showing the routine for placing unique seedspines for use in the method of FIG. 3.

FIG. 8 is a flow diagram showing the routine for placing remaining bestfit spines for use in the method of FIG. 3.

FIG. 9 is a flow diagram showing the function for selecting an anchorcluster for use in the routine of FIG. 8.

FIG. 10 is a data representation diagram showing, by way of example, aview of a cluster spine.

FIGS. 11A-C are data representation diagrams showing anchor pointswithin cluster spines.

FIG. 12 is a flow diagram showing the function for grafting a spinecluster onto a spine for use in the routine of FIG. 8.

FIG. 13 is a data representation diagram showing cluster placementrelative to an anchor point.

FIG. 14 is a data representation diagram showing a completed clusterplacement.

DETAILED DESCRIPTION Glossary

-   Concept: One or more preferably root stem normalized words defining    a specific meaning-   Theme: One or more concepts defining a semantic meaning.-   Cluster: Grouping of documents containing one or more common themes.-   Spine: Grouping of clusters sharing a single concept preferably    arranged linearly along a vector. Also referred to as a cluster    spine.-   Spine Group: Set of connected and semantically-related spines.    The foregoing terms are used throughout this document and, unless    indicated otherwise, are assigned the meanings presented above.    System Overview

FIG. 1 is a block diagram showing a system 10 for arranging conceptclusters in thematic neighborhood relationships in a two-dimensionalvisual display space, in accordance with the present invention. By wayof illustration, the system 10 operates in a distributed computingenvironment, which includes a plurality of heterogeneous systems anddocument sources. A backend server 11 executes a workbench suite 31 forproviding a user interface framework for automated document management,processing and analysis. The backend server 11 is coupled to a storagedevice 13, which stores documents 14, in the form of structured orunstructured data, and a database 30 for maintaining documentinformation. A production server 12 includes a document mapper 32, thatincludes a clustering engine 33 and display generator 34. The clusteringengine 33 performs efficient document scoring and clustering, such asdescribed in commonly-assigned U.S. Pat. No. 7,610,313, issued Oct. 27,2009, the disclosure of which is incorporated by reference. The displaygenerator 34 arranges concept clusters in thematic neighborhoodrelationships in a two-dimensional visual display space, as furtherdescribed below beginning with reference to FIG. 2.

The document mapper 32 operates on documents retrieved from a pluralityof local sources. The local sources include documents 17 maintained in astorage device 16 coupled to a local server 15 and documents 20maintained in a storage device 19 coupled to a local client 18. Thelocal server 15 and local client 18 are interconnected to the productionsystem 11 over an intranetwork 21. In addition, the document mapper 32can identify and retrieve documents from remote sources over aninternetwork 22, including the Internet, through a gateway 23 interfacedto the intranetwork 21. The remote sources include documents 26maintained in a storage device 25 coupled to a remote server 24 anddocuments 29 maintained in a storage device 28 coupled to a remoteclient 27.

The individual documents 17, 20, 26, 29 include all forms and types ofstructured and unstructured data, including electronic message stores,such as word processing documents, electronic mail (email) folders, Webpages, and graphical or multimedia data. Notwithstanding, the documentscould be in the form of organized data, such as stored in a spreadsheetor database.

In one embodiment, the individual documents 17, 20, 26, 29 includeelectronic message folders, such as maintained by the Outlook andOutlook Express products, licensed by Microsoft Corporation, Redmond,Wash. The database is an SQL-based relational database, such as theOracle database management system, release 8, licensed by OracleCorporation, Redwood Shores, Calif.

The individual computer systems, including backend server 11, productionserver 32, server 15, client 18, remote server 24 and remote client 27,are general purpose, programmed digital computing devices consisting ofa central processing unit (CPU), random access memory (RAM),non-volatile secondary storage, such as a hard drive or CD ROM drive,network interfaces, and peripheral devices, including user interfacingmeans, such as a keyboard and display. Program code, including softwareprograms, and data are loaded into the RAM for execution and processingby the CPU and results are generated for display, output, transmittal,or storage.

Display Generator

FIG. 2 is a block diagram showing the system modules implementing thedisplay generator 34 of FIG. 1. The display generator 34 includesclustering, theme generator 41 and spine placement 42 components andmaintains attached storage (not shown) and database 46. Individualdocuments 14 are analyzed by the clustering component 44 to formclusters 50 of semantically scored documents, such as described incommonly-assigned U.S. Pat. No. 7,610,313, issued Oct. 27, 2009, thedisclosure of which is incorporated by reference. In one embodiment,document concepts 47 are formed from concepts and terms extracted fromthe documents 14 and the frequencies of occurrences and reference countsof the concepts and terms are determined. Each concept and term is thenscored based on frequency, concept weight, structural weight, and corpusweight. The document concept scores 48 are compressed and assigned tonormalized score vectors for each of the documents 14. The similaritiesbetween each of the normalized score vectors are determined, preferablyas cosine values. A set of candidate seed documents is evaluated toselect a set of seed documents 49 as initial cluster centers based onrelative similarity between the assigned normalized score vectors foreach of the candidate seed documents or using a dynamic threshold basedon an analysis of the similarities of the documents 14 from a center ofeach cluster 15, such as described in commonly-assigned U.S. Pat. No.7,610,313, issued Oct. 27, 2009, the disclosure of which is incorporatedby reference. The remaining non-seed documents are evaluated against thecluster centers also based on relative similarity and are grouped intothe clusters 50 based on best-fit, subject to a minimum fit criterion.

The theme generator 41 evaluates the document concepts 47 assigned toeach of the clusters 50 and identifies cluster concepts 53 for eachcluster 50, as further described below with reference to FIG. 4.Briefly, the document concepts 47 for each cluster 50 are ranked intoranked cluster concepts 52 based on cumulative document concept scores51. The top-ranked document concepts 47 are designated as clusterconcepts 53. In the described embodiment, each cluster concept 53 mustalso be a document concept 47 appearing in the initial cluster center,be contained in a minimum of two documents 14 or at least 30% of thedocuments 14 in the cluster 50. Other cluster concept membershipcriteria are possible.

The cluster placement component 42 places spines and certain clusters 50into a two-dimensional display space as a visualization 43. The clusterplacement component 42 performs four principal functions. First, thecluster placement component 42 selects candidate spines 55, as furtherdescribed below with reference to FIG. 5. Briefly, the candidate spines55 are selected by surveying the cluster concepts 53 for each cluster50. Each cluster concept 53 shared by two or more clusters 50 canpotentially form a spine of clusters 50. However, those cluster concepts53 referenced by just a single cluster 50 or by more than 10% of theclusters 50 are discarded. The remaining clusters 50 are identified ascandidate spine concepts 54, which each logically form a candidate spine55.

Second, the cluster placement component 42 assigns each of the clusters50 to a best fit spine 56, as further described below with reference toFIG. 6. Briefly, the fit of each candidate spine 55 to a cluster 50 isdetermined by evaluating the candidate spine concept 54 to the clusterconcept 53. The candidate spine 55 exhibiting a maximum fit is selectedas the best fit spine 56 for the cluster 50.

Third, the cluster placement component 42 selects and places unique seedspines 58, as further described below with reference to FIG. 7. Briefly,spine concept score vectors 57 are generated for each best fit spine 56and evaluated. Those best fit spines 56 having an adequate number ofassigned clusters 50 and which are sufficiently dissimilar to anypreviously selected best fit spines 56 are designated and placed as seedspines 58.

The cluster placement component 42 places any remaining unplaced bestfit spines 56 and clusters 50 that lack best fit spines 56 into spinegroups, as further described below with reference to FIG. 8. Briefly,anchor clusters 60 are selected based on similarities between unplacedcandidate spines 55 and candidate anchor clusters. Cluster spines aregrown by placing the clusters 50 in similarity precedence to previouslyplaced spine clusters or anchor clusters along vectors originating ateach anchor cluster 60. As necessary, clusters 50 are placed outward orin a new vector at a different angle from new anchor clusters 55.Finally, the spine groups are placed within the visualization 43 bytranslating the spine groups until there is no overlap, such asdescribed in commonly-assigned U.S. Pat. No. 7,271,804, issued Sep. 18,2007, the disclosure of which is incorporated by reference.

Each module or component is a computer program, procedure or modulewritten as source code in a conventional programming language, such asthe C++ programming language, and is presented for execution by the CPUas object or byte code, as is known in the art. The variousimplementations of the source code and object and byte codes can be heldon a computer-readable storage medium or embodied on a transmissionmedium in a carrier wave. The display generator 32 operates inaccordance with a sequence of process steps, as further described belowwith reference to FIG. 3.

Method Overview

FIG. 3 is a flow diagram showing a method 100 for arranging conceptclusters 50 in thematic neighborhood relationships in a two-dimensionalvisual display space, in accordance with the present invention. Themethod 100 is described as a sequence of process operations or steps,which can be executed, for instance, by a display generator 32 (shown inFIG. 1).

As an initial step, documents 14 are scored and clusters 50 aregenerated (block 101), such as described in commonly-assigned U.S. Pat.No. 7,610,313, issued Oct. 27, 2009, the disclosure of which isincorporated by reference. Next, one or more cluster concepts 53 aregenerated for each cluster 50 based on cumulative cluster concept scores51 (block 102), as further described below with reference to FIG. 4. Thecluster concepts 53 are used to select candidate spines 55 (block 103),as further described below with reference to FIG. 5, and the clusters 50are then assigned to the candidate spines 55 as best fit spines 56(block 104), as further described below with reference to FIG. 6. Uniqueseed spines are identified from the best fit spines 56 and placed tocreate spine groups (block 105), along with any remaining unplaced bestfit spines 56 and clusters 50 that lack best fit spines 56 (block 106),as further described below with reference to FIGS. 7 and 8. Finally, thespine groups are placed within the visualization 43 in the displayspace. In the described embodiment, each of the spine groups is placedso as to avoid overlap with other spine groups. In a further embodiment,the spine groups can be placed by similarity to other spine groups.Other cluster, spine, and spine group placement methodologies could alsobe applied based on similarity, dissimilarity, attraction, repulsion,and other properties in various combinations, as would be appreciated byone skilled in the art. The method then terminates.

Cluster Concept Generation

FIG. 4 is a flow diagram showing the routine 110 for generating clusterconcepts 53 for use in the method 100 of FIG. 3. One purpose of thisroutine is to identify the top ranked cluster concepts 53 that bestsummarizes the commonality of the documents in any given cluster 50based on cumulative document concept scores 51.

A cluster concept 53 is identified by iteratively processing througheach of the clusters 50 (blocks 111-118). During each iteration, thecumulative score 51 of each of the document concepts 47 for all of thedocuments 14 appearing in a cluster 50 are determined (block 112). Thecumulative score 51 can be calculated by summing over the documentconcept scores 48 for each cluster 50. The document concepts 47 are thenranked by cumulative score 51 as ranked cluster concepts 52 (block 113).In the described embodiment, the ranked cluster concepts 52 appear indescending order, but could alternatively be in ascending order. Next, acluster concept 53 is determined. The cluster concept 53 can be userprovided (block 114). Alternatively, each ranked cluster concept 52 canbe evaluated against an acceptance criteria (blocks 115 and 116) toselect a cluster concept 53. In the described embodiment, clusterconcepts 53 must meet the following criteria:

-   -   (1) be contained in the initial cluster center (block 115); and    -   (2) be contained in a minimum of two documents 14 or 30% of the        documents 14 in the cluster 50, whichever is greater (block        116).        The first criteria restricts acceptable ranked cluster concepts        52 to only those document concepts 47 that appear in a seed        cluster center theme of a cluster 50 and, by implication, are        sufficiently relevant based on their score vectors. Generally, a        cluster seed theme corresponds to the set of concepts appearing        in a seed document 49, but a cluster seed theme can also be        specified by a user or by using a dynamic threshold based on an        analysis of the similarities of the documents 14 from a center        of each cluster 50, such as described in commonly-assigned U.S.        Pat. No. 7,610,313, issued Oct. 27, 2009, the disclosure of        which is incorporated by reference The second criteria filters        out those document concepts 47 that are highly scored, yet not        popular. Other criteria and thresholds for determining        acceptable ranked cluster concepts 52 are possible.

If acceptable (blocks 115 and 116), the ranked cluster concept 52 isselected as a cluster concept 53 (block 117) and processing continueswith the next cluster (block 118), after which the routine returns.

Candidate Spine Selection

FIG. 5 is a flow diagram showing the routine 120 for selecting candidatespines 55 for use in the method 100 of FIG. 3. One purpose of thisroutine is to identify candidate spines 55 from the set of all potentialspines 55.

Each cluster concept 53 shared by two or more clusters 50 canpotentially form a spine of clusters 50. Thus, each cluster concept 53is iteratively processed (blocks 121-126). During each iteration, eachpotential spine is evaluated against an acceptance criteria (blocks122-123). In the described embodiment, a potential spine cannot bereferenced by only a single cluster 50 (block 122) or by more than 10%of the clusters 50 in the potential spine (block 123). Other criteriaand thresholds for determining acceptable cluster concepts 53 arepossible. If acceptable (blocks 122, 123), the cluster concept 53 isselected as a candidate spine concept 54 (block 124) and a candidatespine 55 is logically formed (block 125). Processing continues with thenext cluster (block 126), after which the routine returns.

Cluster to Spine Assignment

FIG. 6 is a flow diagram showing the routine 130 for assigning clusters50 to candidate spines 55 for use in the method 100 of FIG. 3. Onepurpose of this routine is to match each cluster 50 to a candidate spine55 as a best fit spine 56.

The best fit spines 56 are evaluated by iteratively processing througheach cluster 50 and candidate spine 55 (blocks 131-136 and 132-134,respectively). During each iteration for a given cluster 50 (block 131),the spine fit of a cluster concept 53 to a candidate spine concept 54 isdetermined (block 133) for a given candidate spine 55 (block 132). Inthe described embodiment, the spine fit F is calculated according to thefollowing equation:

$F = {{\log\left( \frac{popularity}{{rank}^{2}} \right)} \times {scale}}$where popularity is defined as the number of clusters 50 containing thecandidate spine concept 54 as a cluster concept 53, rank is defined asthe rank of the candidate spine concept 54 for the cluster 50, and scaleis defined as a bias factor for favoring a user specified concept orother predefined or dynamically specified characteristic. In thedescribed embodiment, a scale of 1.0 is used for candidate spine concept54 while a scale of 5.0 is used for user specified concepts. Processingcontinues with the next candidate spine 55 (block 134). Next, thecluster 50 is assigned to the candidate spine 55 having a maximum spinefit as a best fit spine 56 (block 135). Processing continues with thenext cluster 50 (block 136). Finally, any best fit spine 56 thatattracts only a single cluster 50 is discarded (block 137) by assigningthe cluster 50 to a next best fit spine 56 (block 138). The routinereturns.Generate Unique Spine Group Seeds

FIG. 7 is a flow diagram showing the routine 140 for placing unique seedspines for use in the method 100 of FIG. 3. One purpose of this routineis to identify and place best fit spines 56 into the visualization 43 asunique seed spines 58 for use as anchors for subsequent candidate spines55.

Candidate unique seed spines are selected by first iterativelyprocessing through each best fit spine 56 (blocks 141-144). During eachiteration, a spine concept score vector 57 is generated for only thosespine concepts corresponding to each best fit spine 56 (block 142). Thespine concept score vector 57 aggregates the cumulative cluster conceptscores 51 for each of the clusters 50 in the best fit spine 56. Eachspine concept score in the spine concept score vector 57 is normalized,such as by dividing the spine concept score by the length of the spineconcept score vector 57 (block 143). Processing continues for eachremaining best fit spine 56 (block 144), after which the best fit spines56 are ordered by number of clusters 50. Each best fit spine 56 is againiteratively processed (blocks 146-151). During each iteration, best fitspines 56 that are not sufficiently large are discarded (block 147). Inthe described embodiment, a sufficiently large best fit spine 56contains at least five clusters 50. Next, the similarities of the bestfit spine 56 to each previously-selected unique seed spine 58 iscalculated and compared (block 148). In the described embodiment, bestfit spine similarity is calculated as the cosine of the cluster conceptscore vectors 59, which contains the cumulative cluster concept scores51 for the cluster concepts 53 of each cluster 50 in the best fit spine56 or previously-selected unique seed spine 58. Best fit spines 56 thatare not sufficiently dissimilar are discarded (block 149). Otherwise,the best fit spine 56 is identified as a unique seed spine 58 and isplaced in the visualization 43 (block 150). Processing continues withthe next best fit spine 56 (block 151), after which the routine returns.

Remaining Spine Placement

FIG. 8 is a flow diagram showing the routine 160 for placing remainingcandidate spines 55 for use in the method 100 of FIG. 3. One purpose ofthis routine is to identify and place any remaining unplaced best fitspines 56 and clusters 50 that lack best fit spines 56 into thevisualization 43.

First, any remaining unplaced best fit spines 56 are ordered by numberof clusters 50 assigned (block 161). The unplaced best fit spine 56 areiteratively processed (blocks 162-175) against each of thepreviously-placed spines (blocks 163-174). During each iteration, ananchor cluster 60 is selected from the previously placed spine 58 (block164), as further described below with reference to FIG. 9. The cluster50 contained in the best fit spine 56 that is most similar to theselected anchor cluster 60 is then selected (block 165). In thedescribed embodiment, cluster similarity is calculated as cosine valueof the cumulative cluster concept vectors 51, although otherdeterminations of cluster similarity are possible, including minimum,maximum, and median similarity bounds. The spine clusters 50 are graftedonto the previously placed spine along a vector defined from the centerof the anchor cluster 55 (block 166), as further described below withreference to FIG. 12. If any of the spine clusters are not placed (block167), another anchor cluster 60 is selected (block 168), as furtherdescribed below with reference to FIG. 9. Assuming another anchorcluster 60 is selected (block 169), the spine clusters are again placed(block 166), as further described below with reference to FIG. 12.Otherwise, if another anchor cluster 60 is not selected (block 169), thecluster 50 is placed in a related area (block 170). In one embodiment,unanchored best fit spines 56 become additional spine group seeds. In afurther embodiment, unanchored best fit spines 56 can be placed adjacentto the best fit anchor cluster 60 or in a display area of thevisualization 43 separately from the placed best fit spines 56.

If the cluster 50 is placed (block 167), the best fit spine 56 islabeled as containing candidate anchor clusters 60 (block 171). If thecurrent vector forms a maximum line segment (block 172), the angle ofthe vector is changed (block 173). In the described embodiment, amaximum line segment contains more than 25 clusters 50, although anyother limit could also be applied. Processing continues with each seedspine (block 174) and remaining unplaced best fit spine 56 (block 175).Finally, any remaining unplaced clusters 50 are placed (block 176). Inone embodiment, unplaced clusters 50 can be placed adjacent to a bestfit anchor cluster 60 or in a display area of the visualization 43separately from the placed best fit spines 56. The routine then returns.

Anchor Cluster Selection

FIG. 9 is a flow diagram showing the function 180 for selecting ananchor cluster 60 for use in the routine 160 of FIG. 8. One purpose ofthis routine is to return a set of anchor clusters 60, which contain thespine concept and which are ordered by similarity to the largest cluster50 in the spine.

Each candidate anchor cluster 60 is iteratively processed (blocks181-183) to determine the similarity between a given cluster 50 and eachcandidate anchor cluster 60 (block 182). In one embodiment, each clustersimilarity is calculated as cosine value concept vectors, although otherdeterminations of cluster similarity are possible, including minimum,maximum, and median similarity bounds. The most similar candidate anchorcluster 60 is identified (block 184) and, if found, chosen as the anchorcluster 60 (block 187), such as described in commonly-assigned U.S. Pat.No. 7,271,804, issued Sep. 18, 2007, the disclosure of which isincorporated by reference. Otherwise, if not found (block 185), thelargest cluster 50 assigned to the unique seed spine 58 is chosen as theanchor cluster 60 (block 186). The function then returns a set of theanchor clusters 60 and the unique seed spine 58 becomes a seed for a newspine group (block 188).

Cluster Spine Example

FIG. 10 is a data representation diagram 200 showing, by way of example,a view of a cluster spine 202. Clusters are placed in a cluster spine202 along a vector 203, preferably defined from center of an anchorcluster. Each cluster in the cluster spine 202, such as endpointclusters 204 and 206 and midpoint clusters 205, group documents 207sharing a popular concept, that is, assigned to a best-fit concept 53.The cluster spine 202 is placed into a visual display area 201 togenerate a two-dimensional spatial arrangement. To represent datainter-relatedness, the clusters 204-206 in each cluster spine 202 areplaced along a vector 203 arranged in order of cluster similarity,although other line shapes and cluster orderings can be used.

The cluster spine 202 visually associates those clusters 204-206 sharinga common popular concept. A theme combines two or more concepts. Duringcluster spine creation, those clusters 204-206 having available anchorpoints are identified for use in grafting other cluster spines sharingpopular thematically-related concepts, as further described below withreference to FIGS. 11A-C.

Anchor Points Example

FIGS. 11A-C are data representation diagrams 210, 220, 230 showinganchor points within cluster spines. A placed cluster having at leastone open edge constitutes a candidate anchor point 54. Referring firstto FIG. 11A, a starting endpoint cluster 212 of a cluster spine 211functions as an anchor point along each open edge 215 a-e at primary andsecondary angles.

An open edge is a point along the edge of a cluster at which anothercluster can be adjacently placed. In the described embodiment, clustersare placed with a slight gap between each cluster to avoid overlappingclusters. Otherwise, a slight overlap within 10% with other clusters isallowed. An open edge is formed by projecting vectors 214 a-e outwardfrom the center 213 of the endpoint cluster 212, preferably atnormalized angles. The clusters in the cluster spine 211 are arranged inorder of cluster similarity.

In one embodiment, given 0≦σ<Π, where σ is the angle of the currentcluster spine 211, the normalized angles for largest endpoint clustersare at one third Π to minimize interference with other spines whilemaximizing the degree of interrelatedness between spines. If the clusterordinal spine position is even, the primary angle is

$\sigma + \frac{\Pi}{3}$and the secondary angle is

$\sigma - {\frac{\Pi}{3}.}$Otherwise, the primary angle is

$\sigma - \frac{\Pi}{3}$and the secondary angle is

$\sigma + {\frac{\Pi}{3}.}$Other evenly divisible angles could be also used.

Referring next to FIG. 11B, the last endpoint cluster 222 of a clusterspine 221 also functions as an anchor point along each open edge. Theendpoint cluster 222 contains the fewest number of concepts. Theclusters in the cluster spine 221 are arranged in order of similarity tothe last placed cluster. An open edge is formed by projecting vectors224 a-c outward from the center 223 of the endpoint cluster 222,preferably at normalized angles.

In one embodiment, given 0≦σ<Π, where σ is the angle of the currentcluster spine 221, the normalized angles for smallest endpoint clustersare at one third Π, but only three open edges are available to graftother thematically-related cluster spines. If the cluster ordinal spineposition is even, the primary angle is

$\sigma + \frac{\Pi}{3}$and the secondary angle is

$\sigma - {\frac{\Pi}{3}.}$Otherwise, the primary angle is

$\sigma - \frac{\Pi}{3}$and the secondary angle is

$\sigma + {\frac{\Pi}{3}.}$Other evenly divisible angles could be also used.

Referring finally to FIG. 11C, a midpoint cluster 232 of a cluster spine231 functions as an anchor point for a separate unplaced cluster spinealong each open edge. The midpoint cluster 232 is located intermediateto the clusters in the cluster spine 231 and defines an anchor pointalong each open edge. An open edge is formed by projecting vectors 234a-b outward from the center 233 of the midpoint cluster 232, preferablyat normalized angles. Unlike endpoint clusters 212, 222 the midpointcluster 232 can only serve as an anchor point along tangential vectorsnon-coincident to the vector forming the cluster spine 231. Accordingly,endpoint clusters 212, 222 include one additional open edge serving as acoincident anchor point.

In one embodiment, given 0≦σ<Π, where σ is the angle of the currentcluster spine 231, the normalized angles for midpoint clusters are atone third Π, but only two open edges are available to graft otherthematically-related cluster spines. Empirically, limiting the number ofavailable open edges to those facing the direction of cluster similarityhelps to maximize the interrelatedness of the overall display space.

Grafting a Spine Cluster onto a Spine

FIG. 12 is a flow diagram showing the function 240 for grafting a spinecluster 50 onto a spine for use in the routine 160 of FIG. 8. Onepurpose of this routine is to attempt to place a cluster 50 at an anchorpoint in a cluster spine either along or near an existing vector, ifpossible, as further described below with reference to FIG. 13.

An angle for placing the cluster 50 is determined (block 241), dependentupon whether the cluster against which the current cluster 50 is beingplaced is a starting endpoint, midpoint, or last endpoint cluster, asdescribed above with reference to FIGS. 11A-C. If the cluster ordinalspine position is even, the primary angle is

$\sigma + \frac{\Pi}{3}$and the secondary angle is

$\sigma - {\frac{\Pi}{3}.}$Otherwise, the primary angle is

$\sigma - \frac{\Pi}{3}$and the secondary angle is

$\sigma + {\frac{\Pi}{3}.}$Other evenly divisible angles could be also used. The cluster 50 is thenplaced using the primary angle (block 242). If the cluster 50 is thefirst cluster in a cluster spine but cannot be placed using the primaryangle (block 243), the secondary angle is used and the cluster 50 isplaced (block 244). Otherwise, if the cluster 50 is placed but overlapsmore than 10% with existing clusters (block 245), the cluster 50 ismoved outward (block 246) by the diameter of the cluster 50. Finally, ifthe cluster 50 is satisfactorily placed (block 247), the functionreturns an indication that the cluster 50 was placed (block 248).Otherwise, the function returns an indication that the cluster was notplaced (block 249).Cluster Placement Relative to an Anchor Point Example

FIG. 13 is a data representation diagram showing cluster placementrelative to an anchor point. Anchor points 266, 267 are formed along anopen edge at the intersection of a vector 263 a, 263 b, respectively,drawn from the center 262 of the cluster 261. The vectors are preferablydrawn at a normalized angle, such as

$\frac{\Pi}{3}$in one embodiment, relative to the vector 268 forming the cluster spine268.Completed Cluster Placement Example

FIG. 14 is a data representation diagram 270 showing a completed clusterplacement. The clusters 272, 274, 276, 278 placed in each of the clusterspines 271, 273, 275, 277 are respectively matched to popular concepts,that is, best-fit concepts 53. Slight overlap 279 between graftedclusters is allowed. In one embodiment, no more than 10% of a clustercan be covered by overlap. The singleton clusters 280, however, do notthematically relate to the placed clusters 272, 274, 276, 278 in clusterspines 271, 273, 275, 277 and are therefore grouped as individualclusters in non-relational placements.

While the invention has been particularly shown and described asreferenced to the embodiments thereof, those skilled in the art willunderstand that the foregoing and other changes in form and detail maybe made therein without departing from the spirit and scope of theinvention.

What is claimed is:
 1. A computer-implemented system for graftingcluster spines, comprising: a spine module to obtain cluster spines,each cluster spine comprising two or more clusters of documents; avector module to generate a score vector for each of the cluster spinesbased on the documents within the clusters for that spine; a comparisonmodule to compare the score vectors of the cluster spines; a placementmodule to place in a display those cluster spines that are sufficientlydissimilar from the other cluster spines based on the comparison; and agrafting module to graft at least one remaining cluster spine onto oneof the displayed spines such that no overlap of the placed spine and theremaining spine occurs.
 2. A system according to claim 1, furthercomprising: an anchor point module to identify an anchor point on thedisplayed spine and to place the remaining cluster spine on thedisplayed spine at the anchor point.
 3. A system according to claim 1,wherein the anchor point is formed along an open edge of the displayedspine at an intersection of a vector drawn from a center of thedisplayed spine.
 4. A system according to claim 1, further comprising:an angle determination module to determine one or more angles from thedisplayed spine and to identify one of the angles as a primary angle;and an spine placement module to place the remaining cluster spine alongthe primary angle.
 5. A system according to claim 4, further comprising:an overlap module to determine that overlap occurs between the remainingcluster spine and the displayed spine and to move the remaining clusterspine away from the display spine along the primary angle.
 6. A systemaccording to claim 5, wherein the remaining cluster spine is moved adistance equal to a diameter of an end cluster on the placed remainingcluster spine.
 7. A system according to claim 5, wherein the overlapcomprises more than 10% overlap between the placed remaining clusterspine and the displayed spine.
 8. A system according to claim 1, furthercomprising: a spine formation module to form each cluster spine,comprising: a concept selection module to select a cluster concept froma set of concepts; and a spine designation module to identify as theformed cluster spine, the clusters of documents that include theselected cluster concept.
 9. A system according to claim 8, wherein theset of concepts comprises at least one of concepts identified from theclusters of documents and concepts provided by one or more users.
 10. Asystem according to claim 9, further comprising: a concept determinationmodule to determine the concepts, comprising: a document scoring moduleto determine document scores for each document within each cluster ofdocuments; a score summation module to sum the document scores for eachcluster of documents; a concept removal module to remove all conceptsthat are not contained in a minimum of two documents; and a conceptdesignation module to designate all remaining concepts as the set ofconcepts.
 11. A computer-implemented method for grafting cluster spines,comprising: obtaining cluster spines, each cluster spine comprising twoor more clusters of documents; generating a score vector for each of thecluster spines based on the documents within the clusters for thatspine; comparing the score vectors of the cluster spines; placing in adisplay those cluster spines that are sufficiently dissimilar from theother cluster spines based on the comparison; and grafting at least oneremaining cluster spine onto one of the displayed spines such that nooverlap of the placed spine and the remaining spine occurs.
 12. A methodaccording to claim 11, further comprising: identifying an anchor pointon the displayed spine; and placing the remaining cluster spine on thedisplayed spine at the anchor point.
 13. A method according to claim 11,wherein the anchor point is formed along an open edge of the displayedspine at an intersection of a vector drawn from a center of thedisplayed spine.
 14. A method according to claim 11, further comprising:determining one or more angles from the displayed spine; identifying oneof the angles as a primary angle; and placing the remaining clusterspine along the primary angle.
 15. A method according to claim 14,further comprising: determining that overlap occurs between theremaining cluster spine and the displayed spine; and moving theremaining cluster spine away from the display spine along the primaryangle.
 16. A method according to claim 15, wherein the remaining clusterspine is moved a distance equal to a diameter of an end cluster on theplaced remaining cluster spine.
 17. A method according to claim 15,wherein the overlap comprises more than 10% overlap between the placedremaining cluster spine and the displayed spine.
 18. A method accordingto claim 11, further comprising: forming each cluster spine, comprising:selecting a cluster concept from a set of concepts; and identifying asthe formed cluster spine, the clusters of documents that include theselected cluster concept.
 19. A method according to claim 18, whereinthe set of concepts comprises at least one of concepts identified fromthe clusters of documents and concepts provided by one or more users.20. A method according to claim 19, further comprising: determining theconcepts, comprising: determining document scores for each documentwithin each cluster of documents; summing the document scores for eachcluster of documents; removing all concepts that are not contained in aminimum of two documents; and designating all remaining concepts as theset of concepts.